﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

using RemotingInterfaces;

namespace Model.Hero
{
    [Serializable]
    public abstract class Race : Base_Stats, INotifyPropertyChanged, IRace
    {        
        protected String _name;
        protected List<Feat> _racial_feats; //ex. undead immune/resistant to frost 

        public Race() : this("N/A") { }

        public Race(String name) : this(name, 1, 1, 1, 1, 1) { }

        public Race(String name, int str, int vit, int _int, int per, int agi)
        {
            _name = name;
            _strength = str;
            _vitality = vit;
            _intellect = _int;
            _perception = per;
            _agility = agi;
        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void NotifyPropertyChanged(String info)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(info));
            }
        }

        public String Name
        {
            get { return _name; }
            set { _name = value; }
        }              
    }
}
